package com.wang.commons.utils;


/**
 * TODO 系统状态码
 */
public enum ResultCode {
    /* 成功状态码 */
    SUCCESS(200,"数据操作成功！"),
    ERREOR(500,"操作失败！请重试！"),
    OLDPASSWORD_ERREOR(500,"原始密码错误"),
    PASS_PULE_ERREOR(100014,"密码规则不合法"),
    PASSWROD_ERREOR(100015,"密码错误，请重新输入！"),
    TEL_ERREOR(100016,"用户电话不存在，请重新输入！"),
    USER_ID_NULL(200050,"用户ID不能为null或者0"),
    UNDO_TASK_SUCCESS(200051,"撤销任务成功！！！"),
    UNDO_TASK_ERREOR(200052,"撤销任务失败！！！"),
    INSERT_DEPT_ERREOR(200053,"部门名称重复！！！"),
    DEPT_IS_NOT_NULL(200055,"该部门存在下级部门，不能删除"),
    USER_IS_NOT_NULL(200056,"该部门存在人员，不能删除"),
    PERSON_SERVICE_IS_NULL(200058,"调用外部人员服务person-listPersonNameByAccountNumList is null"),
    PERSON_OVERDUE(200057,"远程服务调用失败！！！"),
    SERVICE_IS_NULL(200059,"调用外部服务List is null"),
    /* 参数错误：10001-19999 */
    PARAM_IS_INVALID(10001, "参数无效"),
    FOLLOW_STATUS_ERREOR(200054, "关注失败！"),
    FILE_SIZE_LONG(200055, "文件不能超过20MB"),
    MEETING_ID_NULL(10003, "查无会议"),
    CONTENT_AND_ACCOUNT_NUM_NULL(10004, "请填写会议纪要或修改纪要填写人"),
    ILLEGAL_PARAM(10004, "查询标识参数非法！（00=全部 01=结构化 02=非结构化）"),
    FILE_MAX_SIZE_OVERFLOW(10005, "上传尺寸过大"),
    FILE_ACCEPT_NOT_SUPPORT(10006, "上传文件格式不支持"),
    SET_UP_AT_LEAST_ONE_ADMIN(10007, "至少指定一个管理员"),
    MEETING_PERSON_ISNOTNULL(10007, "参会人员不能为空"),
    MEETING_MEETING_PERSON_ISNOTNULL(10007, "会议纪要人员不能为空"),
    URL_INVALID(10008, "地址不合法"),
    LINK_AND_LOGOUT_NO_MATCH(10009, "主页地址和注销地址IP不一致"),
    IP_AND_PORT_EXISTED(10010, "当前IP和端口已经被占中"),
    LINK_IS_REQUIRED(10011, "生成第三方token认证信息： 主页地址不能为空,请完善信息"),
    DICT_LENGTH_NOT_BLANK(10012, "字典值长度不能为空"),
    PWD_NO_VALID(100013, "密码必须是6-20 位，字母、数字、字符(`~!@#$%^&*)"),

    /* 用户错误：20001-20300*/
    USER_NOT_LOGGED_IN(20001, "用户未登录"),
    USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),
    USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),
    USER_NOT_EXIST(20004, "用户不存在"),
    USER_HAS_EXISTED(20005, "用户已存在"),
    USER_PASSWORD_ERROR(20006, "密码错误"),
    ADMIN_ADD_ERROR(20007,"添加管理员错误"),
    ADMIN_REPEAT_TELEPHONE(20008,"手机号重复"),

    /* 权限：20301-20600*/
    ROLE_HAS_EXISTED(20301,"角色已存在"),
    DEPARTMENT_EXIST_CHILDREN(20401,"存在子部门"),
    DEPARTMENT_EXIST_ADMIN(20402,"部门下有管理员"),
    USER_NO_PERMISSION(20403,"没有权限"),

    /* 业务错误：30001-39999 */
    //BUSINESS_GROUP_NO_ALLOWED_DEL(30001, "应用分组已经被 {0} 个应用【{1}{2}】使用，不能删除"),
    NAME_EXISTED(30001, "{0}名称已存在"),
    CODE_EXISTED(30002, "{0}编码已存在"),
    BUSINESS_OUTER_DATASOURCE_NO_ALLOWED_DEL(30002, "不能修改成已存在的维度名称"),
    RESOURCE_CATEGORY_EXIST_DEPEND(30003, "当前分类下存在子分类，不能删除"),
    RESOURCE_CATEGORY_EXIST_RESOURCE_DEPEND(30004, "资源分类已存在，不能创建"),
    RESOURCE_CATEGORY_EXIST_TEMPLATE_DEPEND(30005, "资源分类为系统分类，不能删除"),
    DIMENDION_ID_NOT_EMPTY(30006,"维度ID不能为空"),
    DIMENDION_NAME_NOT_EMPTY(30006, "维度名称或别名不能为空"),
    LABEL_EXIST_TEMPLATE_DEPEND_NOTALLOW_DELETE(30007, "标签已经被 {0} 个数据资源【{1}{2}】使用，不能删除"),
    DICT_ENGLISH_NOT_BLANK(30006, "标签值域依赖标签英文名不能为空"),

    BUSINESS_IS_TOP(30006, "已经到最顶部"),
    BUSINESS_IS_BOTTOM(30007, "已经到最底部"),
    ONLY_ROOT_DEPARTMENT(30009, "组织机构只能存在一个根机构"),
    DEPART_CODE_EXISTED(30010, "组织机构编码已存在"),
    DEPART_CONTAINS_USERS(30011, "该机构下是存在 {0} 个用户 【{1}{2}】，不允许删除"),
    DEPART_CONTAINS_SON(30012, "该机构下是存在子级机构，不允许删除"),
    DEPART_PARENT_IS_SELF(30013, "选择的父机构不能为本身"),
    DICT_EXIST_DEPEND(30014, "该字典数据存在详情依赖，不允许删除"),
    DICT_DETAIL_LOCK(30015, "该字典数据被锁定，不允许修改或删除"),
    DEPART_CODE_EXISTED_WITH_ARGS(30016, "组织机构编码【{0}】系统已存在"),
    USER_GROUP_DEPEND_ROLE(30017, "角色被用户组关联，不允许删除"),
    ROLE_NAME_EXISTS(30018, "角色名称已存在"),
    USER_GROUP_NAME_EXISTS(30019, "用户组名称已存在"),
    USER_GROUP_DEPEND_USER(30020, "用户组已经分配有 {0} 个用户【{1}{2}】，不能删除"),
    PAGE_EXIST_DEPEND(30021, "系统页面关联有功能操作，不能删除"),
    APP_EXIST_DEPEND_WITH_ARGS(30022, "当前功能菜单，已分配角色【{0}】不能删除"),
    USER_EXISTED_WITH_GROUP(30017, "组织机构编码【{0}】系统已存在"),
    USER_IS_ADMIN(30018, "当前用户为管理员不允许删除"),
    PARENT_NODE_IS_SELF(30019, "当前节点父节点不能为自己"),
    STARTTIME_ENDTIME_NOT_BLANK(30020, "生效时间和失效失效必须同时存在"),
    ENDTIME_MORETHAN_STARTTIME(30021, "失效失效必须大于生效时间"),
    CAS_TEMPLATE_NOT_FOUND(30022, "CAS Service 模板丢失，请至少一个CAS注册模板数据"),
    LINK_LOGOUT_IP_NOT_EQUALS(30021, "主页地址和注销地址IP和端口不一致"),
    DICT_TYPE_ERROR(30022, "字典类型参数不正确"),
    DB_TYPE_NOT_SUPPORT(30023, "数据库类型系统不支持"),
    ERROR_OPTION_RESULT_NO(30024,"分析选项与对比集数量不匹配"),
    SYSTEM_DATE_CONVERT_ERROR(30025,"系统时间转换错误"),
    SYSTEM_TO_FILE_ERROR(30026,"文件转码错误,请稍后重试!!!"),

    /* 系统错误：40001-44999 */
    SYSTEM_INNER_ERROR(40001, "系统繁忙，请稍后重试"),
    UPLOAD_ERROR(40002, "系统异常，上传文件失败"),
    THIRD_SYSTEM_ERROR(40003,"第三方系统异常:"),

    /*支付错误 45000-45999*/
    ERROR_PAY_REQUEST(45000,"支付请求发送失败"),
    ERROR_PAY(45001,"支付系统错误"),
    ERROR_PAY_VIEW_LOSE(45002,"支付二维码失效"),
    ERROR_PAY_FAILED(45003,"支付失败"),


    /*订单错误*/
    ERROR_ORDER_NOT_FOUND(46000,"未找到改订单"),
    ERROR_ORDER_FAILURE(46001,"订单已失效"),

    /* 数据错误：50001-599999 */
    RESULT_DATA_NONE(50001, "【{0}】数据未找到"),
    DATA_YEAR_TO_LARGE(50002, "年份最大支持20年"),
    DATA_IS_WRONG(50002, "数据有误"),
    DATA_ALREADY_EXISTED(50003, "数据已存在"),
    MOBILE_ALREADY_EXISTED(50004, "手机号已重复"),
    NAME_ALREADY_EXISTED(50005, "名称已重复"),
    ROLENAME_ALREADY_EXISTED(50006, "该角色下面已有用户,不能删除"),

    /* 接口错误：60001-69999 */
    INTERFACE_INNER_INVOKE_ERROR(60001, "内部系统接口调用异常"),
    INTERFACE_OUTTER_INVOKE_ERROR(60002, "外部系统接口调用异常"),
    INTERFACE_FORBID_VISIT(60003, "该接口禁止访问"),
    INTERFACE_ADDRESS_INVALID(60004, "接口地址无效"),
    INTERFACE_REQUEST_TIMEOUT(60005, "接口请求超时"),
    INTERFACE_EXCEED_LOAD(60006, "接口负载过高"),


    /* 权限错误 */
    PERMISSION_UNAUTHENTICATED(70001,"此操作需要登陆系统！"),
    PERMISSION_UNAUTHORISE(70002,"权限不足，无权操作！"),
    PERMISSION_EXPIRE(70003,"登录状态过期！"),
    PERMISSION_LIMIT(70004, "访问次数受限制"),
    IS_UN_ACTIVE(70005, "用户已被注销"),


    /* 流程错误 */
    WORKFLOW_HAS_DEAL(90001,"流程已处理"),
    WORKFLOW_NO_PERMISSION(90002,"无权处理此流程"),
    WORKFLOW_NO_PUSH(90003,"无权发布此流程"),
    WORKFLOW_RE_PUSH(90003,"不能重复发布此流程"),

    /* 缓存错误 */
    CACHE_ERROR(80001,"缓存异常!!!!"),

    /*数据标准错误*/
    STANDARD_TOPIC_INSERT(100001,"标准主题插入失败！"),
    //    STANDARD_TOPIC_NOT_EXIST(100002,"标准主题不存在！"),
    STANDARD_TOPIC_NOT_EXIST(100002,"该主题不存在！"),
    STANDARD_TOPIC_UPDATE_ERROR(100003,"标准主题修改失败！"),
    STANDARD_TOPIC_TERM_EXIST(100004,"请先删除此主题下的数据标准"),
    STANDARD_TOPIC_CATEGORY_EXIST(100005,"请先删除此主题下的分类"),
    STANDARD_TOPIC_REMOVE_ERROR(100006,"标准主题删除失败,请确认该主题是否存在"),
    /*标准分类错误*/
    STANDARD_PARENT_CATEGORY_NOT_EXIST(100007,"上级分类不存在"),
    STANDARD_CATEGORY_INSERT_ERROR(100008,"新增标准分类失败"),
    STANDARD_CATEGORY_NOT_EXIST(100009,"该分类不存在"),
    STANDARD_PARENT_CATEGORY_IS_NOT_ME(100010,"上级分类不能为本身"),
    STANDARD_CATEGORY_UPDATE_ERROR(100011,"标准分类修改失败"),
    STANDARD_PARENT_CATEGORY_NOT_IS_CHILDREN(100012,"上级分类不能选择自己的下级分类"),
    STANDARD_CATEGORY_EXIST_CHILDREN_CATEGORY(100013,"请先删除子分类后再删除此分类"),
    STANDARD_CATEGORY_EXIST_TERM(100014,"请先删除该分类下的标准词汇再删除此分类"),
    STANDARD_CATEGORY_REMOVE_ERROR(100011,"标准分类删除失败,请确认该分类是否存在"),
    /*标准词汇错误*/
    STANDARD_TERM_INSERT_ERROR(100101,"数据标准添加失败"),
    STANDARD_TERM_UPDATE_ERROR(100102,"数据标准修改失败"),
    STANDARD_TERM_NOT_EXISTS(100103,"该标准不存在"),
    STANDARD_TERM_REMOVE_ERROR(100103,"标准删除失败"),

    /*
    元数据相关异常
     */
    METEDATE_CONN_ERROR(101500,"链接数据库失败"),
    METEDATE_SAVE_ERROR(101501,"保存元数据信息失败"),
    METEDATE_MONGODB_ERROR(101502,"链接mongodb失败"),
    METEDATE_TYPE_ERROR(101503,"类型选择错误"),
    METEDATE_QUERY_ERROR(101503,"元数据不纯在"),
    METEDATE_ERROR(101504,"暂不支持的类型"),
    METEDATE_AUTO_ERROR(101504,"暂不支持的类型"),
    STANDARD_TERM_EXIST_QUOTE_COLLECT(100103,"数据标准已经被引用,请先删除采集配置中引用后再试"),

    /*标准代码错误*/
    STANDARD_CODE_EXIST(100201,"标准代码编号已经存在"),
    STANDARD_CODE_INSERT_ERROR(100202,"标准代码插入失败"),
    STANDARD_CODE_UPDATE_ERROR(100202,"标准代码修改失败"),
    STANDARD_CODE_EXIST_QUOTE_COLLECT(100203,"标准代码已被引用,请先删除采集配置中引用后再试"),
    STANDARD_CODE_EXIST_QUOTE_TERM(100204,"标准代码编号已被引用,请先删除数据标准中引用后再试"),
    STANDARD_CODE_REMOVE_ERROR(100205,"标准代码删除失败"),
    STANDARD_CODE_NO_EXIST(100206, "标准代码不存在"),
    /*标准代码内的标准代码词汇错误*/
    STANDARD_CODE_TERM_NO_EXIST(100207,"标准代码词汇不存在"),
    STANDARD_CODE_TERM_UPDATE_ERROR(100208,"标准代码词汇修改失败"),
    STANDARD_CODE_TERM_INSERT_ERROR(100209,"标准代码词汇添加失败"),
    STANDARD_CODE_TERM_REMOVE_ERROR(100210,"标准代码词汇删除失败"),
    STANDARD_CODE_TERM_DATA_IS_ONE(100211,"至少保留一条标准代码词汇"),


    /*在线任务错误*/
    TASK_EXIST_ERROR(100300,"该定时任务类名已存在"),
    TASK_UPDATE_ERROR(100301,"更新定时任务失败!"),
    TASK_EQUALLY_ERROR(100302,"未找到对应实体"),
    TASK_PARAMETER_ERROR(100303,"参数错误!"),
    TASK_NOT_EXIST_ERROR(100304,"定时任务不存在！"),
    TASK_RUN_NOW_ERROR(1000305,"定时任务 立即执行失败!"),


    /*文件状态码*/
    FILE_IS_NULL(1000401,"文件是空的!!!"),
    FILE_UPLOAD_FAIL(1000402,"文件保存失败!!!"),
    ;



    //操作代码
    int code;
    //提示信息
    String message;


    public int code() {
        return code;
    }

    public String message() {
        return message;
    }

    ResultCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}